/**
 * 
 * fn -> 变化的逻辑
 * 
 */


Function.prototype.before = function(cb) {
  var _self = this;

  return function() {
    var res = cb.apply(_self, arguments);
    // 把before 执行完得到结果作为参数传给 变化逻辑 里执行
    // 因为是数组形式 需要改用call
    return _self.call(_self, res);
  }
}

Function.prototype.after = function(cb) {
  var _self = this;

  return function() {
    var res = _self.apply(_self, arguments);
    cb.call(_self, res);
    return res;
  }
}

// var aop = test.before(() => {
//   console.log('------------'); 
// }).after(() => {
//   console.log('++++++++++++');
// })();